package com.yida.gwj.api.domain;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.common.core.annotation.Excel;


import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;

/**
 * 缴存金额收入总帐明细对象 finance_money
 *
 * @author lqq
 * @date 2022-12-28
 */
public class GwjFinanceMoney implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 表主键
	 */
	@Excel(name = "编号")
	private Long moneyId;

	/**
	 * 业务表yw_id
	 */
	private Long bizId;

	/**
	 * 开发商
	 */
	@Excel(name = "开发商")
	private String companyName;

	/**
	 * 缴款日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "缴款日期", width = 30, dateFormat = "yyyy-MM-dd")
	@NotNull(message = "缴款日期不能为空")
	private Date depositTime;

	/**
	 * 银行
	 */
	@Excel(name = "银行")
	@NotBlank(message = "银行不能为空")
	private String bankName;

	/**
	 * 已交金额
	 */
	@Excel(name = "已交金额")
	private BigDecimal depositMoney;

	/**
	 * 项目名称
	 */
	@Excel(name = "项目名称")
	@NotBlank(message = "项目名称不能为空")
	private String projectName;

	/**
	 * 备注
	 */
	@Excel(name = "备注")
	private String remark;

	/**
	 * 累计已缴金额
	 */
	@Excel(name = "累计缴交金额")
	private BigDecimal totalDepositMoney;

	/**
	 * 新系统中分配金额是否被选择 默认0未选中，1已选中
	 */
	@Excel(name = "该笔金额是否被选中", readConverterExp = "0=否,1=是")
	private String selectFlag;

	/**
	 * 业务编号
	 */
	@Excel(name = "业务编号")
	private Long bizNum;

	/**
	 * 业务步骤ID
	 */
	@Excel(name = "业务步骤")
	private String stepName;

	/**
	 * 面积
	 */
	private BigDecimal totalSize;

	/**
	 * 类型（1:单位缴存 0:旧分户数据）
	 */
	private String divisionType;

	/**
	 * 新系统中分配金额是否被选择 默认0未选中，1已选中
	 */
	private String delFlag;

	/**
	 * 缴存明细id
	 */
	private Long depositDetailId;

	/**
	 * 是否已移交，移交出去的帐不计入总帐，也不算利息：0未移交，1已移交
	 */
	private String transferFlag;

	/**
	 * 地区ID
	 */
	@NotNull(message = "地区ID不能为空")
	private Long areaId;

	/**
	 * 银行ID
	 */
	@NotNull(message = "银行不能为空")
	private Long bankId;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;

	/**
	 * 金额ID
	 */
	private Long[] moneyIds;

	/**
	 * 需排除的金额ID
	 */
	private Long[] excludeMoneyIds;

	/**
	 * 业务名称
	 */
	private String bizName;

	/**
	 * 开始时间
	 */
	private Date startTime;

	/**
	 * 结束时间
	 */
	private Date endTime;

	public Long getMoneyId() {
		return moneyId;
	}

	public void setMoneyId(Long moneyId) {
		this.moneyId = moneyId;
	}

	public Long getBizId() {
		return bizId;
	}

	public void setBizId(Long bizId) {
		this.bizId = bizId;
	}

	public String getCompanyName() {
		return companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	public Date getDepositTime() {
		return depositTime;
	}

	public void setDepositTime(Date depositTime) {
		this.depositTime = depositTime;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public BigDecimal getDepositMoney() {
		return depositMoney;
	}

	public void setDepositMoney(BigDecimal depositMoney) {
		this.depositMoney = depositMoney;
	}

	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public BigDecimal getTotalDepositMoney() {
		return totalDepositMoney;
	}

	public void setTotalDepositMoney(BigDecimal totalDepositMoney) {
		this.totalDepositMoney = totalDepositMoney;
	}

	public String getSelectFlag() {
		return selectFlag;
	}

	public void setSelectFlag(String selectFlag) {
		this.selectFlag = selectFlag;
	}

	public Long getBizNum() {
		return bizNum;
	}

	public void setBizNum(Long bizNum) {
		this.bizNum = bizNum;
	}

	public String getStepName() {
		return stepName;
	}

	public void setStepName(String stepName) {
		this.stepName = stepName;
	}

	public BigDecimal getTotalSize() {
		return totalSize;
	}

	public void setTotalSize(BigDecimal totalSize) {
		this.totalSize = totalSize;
	}

	public String getDivisionType() {
		return divisionType;
	}

	public void setDivisionType(String divisionType) {
		this.divisionType = divisionType;
	}

	public String getDelFlag() {
		return delFlag;
	}

	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	public Long getDepositDetailId() {
		return depositDetailId;
	}

	public void setDepositDetailId(Long depositDetailId) {
		this.depositDetailId = depositDetailId;
	}

	public String getTransferFlag() {
		return transferFlag;
	}

	public void setTransferFlag(String transferFlag) {
		this.transferFlag = transferFlag;
	}

	public Long getAreaId() {
		return areaId;
	}

	public void setAreaId(Long areaId) {
		this.areaId = areaId;
	}

	public Long getBankId() {
		return bankId;
	}

	public void setBankId(Long bankId) {
		this.bankId = bankId;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Long[] getMoneyIds() {
		return moneyIds;
	}

	public void setMoneyIds(Long[] moneyIds) {
		this.moneyIds = moneyIds;
	}

	public Long[] getExcludeMoneyIds() {
		return excludeMoneyIds;
	}

	public void setExcludeMoneyIds(Long[] excludeMoneyIds) {
		this.excludeMoneyIds = excludeMoneyIds;
	}

	public String getBizName() {
		return bizName;
	}

	public void setBizName(String bizName) {
		this.bizName = bizName;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	@Override
	public String toString() {
		final StringBuffer sb = new StringBuffer("GwjFinanceMoney{");
		sb.append("moneyId=").append(moneyId);
		sb.append(", bizId=").append(bizId);
		sb.append(", companyName='").append(companyName).append('\'');
		sb.append(", depositTime=").append(depositTime);
		sb.append(", bankName='").append(bankName).append('\'');
		sb.append(", depositMoney=").append(depositMoney);
		sb.append(", projectName='").append(projectName).append('\'');
		sb.append(", remark='").append(remark).append('\'');
		sb.append(", totalDepositMoney=").append(totalDepositMoney);
		sb.append(", selectFlag='").append(selectFlag).append('\'');
		sb.append(", bizNum=").append(bizNum);
		sb.append(", stepName='").append(stepName).append('\'');
		sb.append(", totalSize=").append(totalSize);
		sb.append(", divisionType='").append(divisionType).append('\'');
		sb.append(", delFlag='").append(delFlag).append('\'');
		sb.append(", depositDetailId=").append(depositDetailId);
		sb.append(", transferFlag='").append(transferFlag).append('\'');
		sb.append(", areaId=").append(areaId);
		sb.append(", bankId=").append(bankId);
		sb.append(", createTime=").append(createTime);
		sb.append(", moneyIds=").append(moneyIds == null ? "null" : Arrays.asList(moneyIds).toString());
		sb.append(", excludeMoneyIds=").append(excludeMoneyIds == null ? "null" : Arrays.asList(excludeMoneyIds).toString());
		sb.append(", bizName='").append(bizName).append('\'');
		sb.append(", startTime=").append(startTime);
		sb.append(", endTime=").append(endTime);
		sb.append('}');
		return sb.toString();
	}
}
